package pers.qianyu.module.image.service;

import pers.qianyu.module.core.comm.*;
import pers.qianyu.module.core.domain.image.dto.*;
import pers.qianyu.module.core.domain.image.query.*;
import pers.qianyu.module.core.domain.image.vo.*;

/**
 * @author mizzle rain
 * @date 2021-02-11 13:16
 */
public interface NoticeService {
    /**
     * 插入一条消息
     *
     * @param noticeDTO 通知信息
     * @return 插入之后的主键
     */
    Long insert(NoticeDTO noticeDTO);

    /**
     * 条件删除一条通知
     *
     * @param noticeDTO 删除条件
     */
    void delete(NoticeDTO noticeDTO);

    /**
     * 根据条件查询通知信息
     *
     * @param noticeQuery 查询条件
     * @return 分页结果
     */
    Pagination<NoticeVO> query(NoticeQuery noticeQuery);

    /**
     * 根据 id 删除
     *
     * @param id 通知id
     */
    void deleteById(Long id);

    /**
     * 更新消息通知的状态
     *
     * @param noticeForUpdateStatusDTO 更新信息
     */
    void updateStatus(NoticeForUpdateStatusDTO noticeForUpdateStatusDTO);
}
